package com.xmread.cn.network;

import com.xmread.cn.Ui.entity.AppBean;
import com.xmread.cn.Ui.entity.BookCityHandpickBean;
import com.xmread.cn.Ui.entity.BookCityMenuBean;
import com.xmread.cn.Ui.entity.BookDetailsBean;
import com.xmread.cn.Ui.entity.BookListBean;
import com.xmread.cn.Ui.entity.BookListDetailsBean;
import com.xmread.cn.Ui.entity.BookRankBean;
import com.xmread.cn.Ui.entity.BookRankDataBean;
import com.xmread.cn.Ui.entity.BookShelfBean;
import com.xmread.cn.Ui.entity.ClassifyBean;
import com.xmread.cn.Ui.entity.CollectBean;
import com.xmread.cn.Ui.entity.HistoryBean;
import com.xmread.cn.Ui.entity.LabelBean;
import com.xmread.cn.Ui.entity.LabelFuzzyBean;
import com.xmread.cn.Ui.entity.MoreBean;
import com.xmread.cn.Ui.entity.PreferenceBean;
import com.xmread.cn.Ui.entity.SearchBean;
import com.xmread.cn.Ui.entity.SearchLabelBean;
import com.xmread.cn.Ui.entity.SearchListBean;
import com.xmread.cn.Ui.entity.SearchTipsBean;
import com.xmread.cn.Ui.entity.SubLayoutBean;
import com.xmread.cn.Ui.entity.TwoLabelBean;
import com.xmread.cn.bean.CommonResult;
import com.xmread.cn.bean.MUserBean;
import com.xmread.cn.bean.MUserInfo;
import com.xmread.cn.bean.ProblemBean;
import java.util.List;
import java.util.Map;

import io.reactivex.rxjava3.core.Observable;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.Headers;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.PartMap;
import retrofit2.http.Path;

public interface BookService {
    @FormUrlEncoded
    @POST("v1/index/faq")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<List<ProblemBean>>> commonProblem(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/user/saveBookshelf")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<Object>> getAddCollectBookShalf(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/user/saveUserTag")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<Object>> getAddPreference(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("v1/index/getAppInfo")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<AppBean>> getAppInfo(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("v1/layout/getColumnDetail")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<BookCityHandpickBean>> getBookCity(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("v1/layout/getColumn")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<List<BookCityMenuBean>>> getBookCityTitle(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("v1/book/getBookDetail")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<BookDetailsBean>> getBookDetails(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/book/getBookLists")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<BookListBean>> getBookList(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/book/getBookListsDetail")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<BookListDetailsBean>> getBookListDetails(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/user/saveCollection")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<Object>> getBookListDetailsAddCollect(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/user/delCollection")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<Object>> getBookListDetailsDeleteCollect(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("v1/layout/getMoreBook")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<MoreBean>> getBookMore(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/user/bookshelf")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<BookShelfBean>> getBookShalf(@FieldMap Map<String, Object> map);

//    @FormUrlEncoded
//    @POST("/v1/book/getBookSource")
//    @Headers({"Cache-Control: public, max-age=max-age=0"})
//    Observable<CommonResult<List<BookSourceBean>>> getBookSource(@FieldMap Map<String, Object> map);

//    @FormUrlEncoded
//    @POST("v1/book/getCategory")
//    @Headers({"Cache-Control: public, max-age=max-age=0"})
//    Observable<CommonResult<List<ClassifyBean>>> getClassify(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/user/collection")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<CollectBean>> getCollectList(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/book/bookerror")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<Object>> getContentError(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/user/delBookshelf")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<Object>> getDeleteBookShalf(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/user/delHistory")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<Object>> getDeleteHistoryList(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/user/history")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<List<HistoryBean>>> getHistoryList(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/user/keepBookshelf")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<Object>> getKeepBookShalf(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/user/userTag")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<List<PreferenceBean>>> getPreference(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("v1/book/getRankingBook")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<BookRankDataBean>> getRankingBook(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("v1/book/getRanking")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<List<BookRankBean>>> getRanks(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/user/saveHistory")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<Object>> getSaveHistory(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("v1/search/SearchIndex")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<SearchBean>> getSearch(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("v1/Search/genreSearch")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<LabelFuzzyBean>> getSearchGenre(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("v1/Search/getSearchCondition")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<List<SearchLabelBean>>> getSearchLabl(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("v1/Search/KeyWordSearch")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<SearchListBean>> getSearchList(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("v1/search/SearchTips")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<List<TwoLabelBean>>> getSearchTips(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("v1/Search/CategorySearch")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<LabelBean>> getSearchTipsList(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("v1/book/getIndexBook")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<SubLayoutBean>> getSublayout(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("v1/search/SearchTips")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<List<SearchTipsBean>>> getTips(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/user/topBookshelf")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<Object>> getTopBookShalf(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/user/userInfo")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<MUserInfo>> getUserInfo(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/user/loginDevice")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<MUserBean>> login(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/user/saveFeedback")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<Object>> saveFeedback(@FieldMap Map<String, Object> map);

    @POST("/v1/user/upload")
    @Multipart
    Observable<CommonResult<Map<String, String>>> upImg(@Part MultipartBody.Part part, @Part MultipartBody.Part part2);

    @POST("{domain}")
    @Multipart
    Observable<CommonResult<Object>> upLoadImg(@Path("domain") String str, @PartMap Map<String, RequestBody> map);

    @FormUrlEncoded
    @POST("/v1/user/updateUserInfo")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<Object>> updataUserInfo(@FieldMap Map<String, Object> map);

    @FormUrlEncoded
    @POST("/v1/user/wechatLogin")
    @Headers({"Cache-Control: public, max-age=max-age=0"})
    Observable<CommonResult<MUserBean>> wxLogin(@FieldMap Map<String, Object> map);
}
